// 将两帧灰度图像作差，绝对值大于0的像素点颜色设为ffff，其他为0
// 输入格式：16bit输入，两帧frame数据对齐输入
module frame_difference #(
    DIFF_THRESHOLD = 16'd3000
)(
    input               frame_data_vsync ,
    input               frame_data_href  ,
    input       [15:0]  frame1_gray_data ,
    input       [15:0]  frame2_gray_data ,
    input               frame_data_valid ,
    output              diff_data_vsync  ,
    output              diff_data_href   ,
    output      [15:0]  diff_data        ,
    output              diff_data_valid
);
// wire define
wire [15:0] abs_diff_data_abs;
//              main code
assign abs_diff_data_abs = (frame1_gray_data >= frame2_gray_data) ? (frame1_gray_data - frame2_gray_data) : (frame2_gray_data - frame1_gray_data); // 作差取绝对值
assign diff_data = (abs_diff_data_abs >= DIFF_THRESHOLD) ? 16'hffff : 16'h0;   // 输出
// assign diff_data = abs_diff_data_abs;
assign diff_data_vsync = frame_data_vsync;
assign diff_data_href = frame_data_href;
assign diff_data_valid = frame_data_valid;
endmodule